Skip to content

Add Sombra Shades window shade sub-driver#2991

Merged
cbaumler merged 9 commits into
SmartThingsCommunity:mainfrom
Woofser:sombra-shades-subdriver
Jul 2, 2026
Merged

Add Sombra Shades window shade sub-driver#2991
cbaumler merged 9 commits into
SmartThingsCommunity:mainfrom
Woofser:sombra-shades-subdriver

Conversation

@Woofser

@Woofser Woofser commented May 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a sub-driver to the zigbee-window-treatment driver for Sombra Shades
Zigbee window shade motors (manufacturer "Sombra Shades").

Details

  • Position is reported and commanded through the standard Window Covering
    cluster (0% = open, 100% = closed); no inversion.
  • Opening/Closing status is inferred from the direction of position change,
    so it works across Sombra motor variants (battery and DC) regardless of
    any manufacturer-specific motion cluster. A short settle timer emits the
    resting state once movement stops.
  • Battery level via the Power Configuration cluster; power source via the
    Basic cluster.
  • Registered through the existing lazy-load mechanism in sub_drivers.lua.

Testing

  • Unit tests in test_zigbee_window_treatment_sombra.lua.
  • Verified on physical Sombra hardware (battery and DC motors): open, close,
    pause, set level, preset, position reporting, battery, and power source.

@CLAassistant

CLAassistant commented May 21, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@nand-nor

Copy link
Copy Markdown
Contributor

Is the change to the fingerprints file intentional? Im not sure this will be backwards compatible, depending on if there are devices in the field that already use the exiting fingerprint

@Woofser

Woofser commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Good catch — that removal wasn't intentional. This branch predated the Sombra Shades/WM25/L-Z and Sombra Shades/SS25/L-Z fingerprints being added to main, so the diff was dropping them.

I've pushed a commit restoring both entries (unchanged, still mapped to window-treatment-battery), so the change is now purely additive — it only adds the Sombra Shades/SOMBRA/Z-M fingerprint (mapped to window-treatment-powerSource and handled by the new sombra sub-driver). No existing fingerprints are removed, so any field devices on WM25/L-Z or SS25/L-Z keep matching. Thanks for catching it!

@cbaumler

Copy link
Copy Markdown
Contributor

Hi @Woofser, could you also update this branch? Looks like it's out-of-date with main.

@Woofser

Woofser commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @cbaumler — done. I've updated the branch, so it's now up to date with main and merges cleanly. Let me know if anything else is needed.

@cbaumler

Copy link
Copy Markdown
Contributor

Hi @Woofser, it looks like the branch is still out-of-date with main.

@Woofser

Woofser commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Hi @cbaumler, That's odd. It looked like it went through. It should be good now

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Channel deleted.

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Test Results

   73 files    518 suites   0s ⏱️
2 956 tests 2 956 ✅ 0 💤 0 ❌
4 863 runs  4 863 ✅ 0 💤 0 ❌

Results for commit d6633f6.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

File Coverage
All files 96%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/VIVIDSTORM/init.lua 93%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/aqara/aqara_utils.lua 93%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/aqara/init.lua 90%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/aqara/version/can_handle.lua 83%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/sombra/init.lua 95%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/window_shade_utils.lua 88%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/lazy_load_subdriver.lua 57%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/axis/axis_version/init.lua 97%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/hanssem/init.lua 91%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/aqara/curtain-driver-e1/init.lua 92%
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-window-treatment/src/yoolax/init.lua 97%

Minimum allowed coverage is 90%

Generated by 🐒 cobertura-action against d6633f6

@aleclorimer

Copy link
Copy Markdown
Contributor

Looks like two tests are failing.

A falling position reports opening, then settles to partially open
A rising position reports closing, then settles to partially open

@Woofser

Woofser commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

d6633f6 should fix the two failures. The settle tests were advancing the mock clock without registering the timer first, so partially_open never fired — added the __create_and_queue_test_time_advance_timer call to match the doConfigure/added tests. Test-only change. Mind re-running the workflow when you get a sec? Thanks!

@cbaumler
cbaumler merged commit b157ea0 into SmartThingsCommunity:main Jul 2, 2026
14 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants